package com.fowo.api.sms.service;

import com.fowo.api.sms.config.SmsServiceProperties;

import java.util.Dictionary;
import java.util.Hashtable;

/**
 * 短信服务
 * @author yl_ls
 */
public interface SmsService {
    /**
     * 发送短信验证码
     * @param phone 手机号
     * @param code 验证码
     */
    default void sendVerificationCode(String phone, String code) throws Exception {
        Dictionary<String, Object> params = new Hashtable<>();
        params.put("code", code);
        sendSms(SmsServiceProperties.SCENE_VerificationCodeTemplate, phone, params);
    }

    /**
     * 发送短信
     * @param scene 场景
     * @param phone 手机号
     * @param params 参数
     */
    void sendSms(String scene, String phone, Dictionary<String, Object> params) throws Exception;

    /**
     * 发送短信
     * @param templateCode
     * @param phone 手机号
     * @param params 参数
     */
    void sendSmsByTemplate(String templateCode, String phone, Dictionary<String, Object> params) throws Exception;
}
